1
현대 C++에서 동시성의 표준화
AI013Lesson 7
00:00

C++11 이전에는 C++ 표준은 "스레드 무관성("thread-agnostic")" POSIX 스레드(Pthreads) 또는 Win32 같은 플랫폼 전용 API에 의존했습니다. 현대적인 C++는 공식적인 메모리 모델 과 표준화된 동시성 API를 도입함으로써 언어를 혁신적으로 바꾸었습니다.

1. C++11의 '해저 변화'

C++11은 단일 스레드 추상 기계였던 언어를 <thread> 헤더와 std::thread을 통해 동시 실행을 내장된 방식으로 이해하는 것으로 변화시켰습니다. 이를 통해 멀티스레딩은 외부 라이브러리 문제에서 핵심 타입 시스템의 일부로 이동되었습니다.

C++11 이전 (분산)PthreadsWin32 API현대적 C++ (표준)<thread> <mutex><atomic> <future>

2. 예외 보장

그리고 noexcept 지정자는 동시성 환경에서 매우 중요합니다. 이는 함수(예: 스레드의 진입점)가 예외를 전파하지 않겠다는 계약을 제공합니다. 만약 예외가 noexcept 경계를 벗어나면, std::terminate() 즉시 호출되어 정의되지 않은 상태 손상을 방지합니다.

3. 일관된 데이터 유형

표준화 과정에서는 long long int (C99에서 채택됨) 및 std::filesystem와 같은 유형을 포함하여, 스레드 간 공유될 때 하드웨어 간 데이터 폭과 시스템 상호작용이 일관되게 유지됨을 보장합니다.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>